package io.renren.modules.demo.service;

import io.renren.common.service.CrudService;
import io.renren.modules.demo.dto.ChildThreeData;
import io.renren.modules.demo.dto.DhGodsInfoDTO;
import io.renren.modules.demo.entity.DhGodsInfoEntity;
import io.swagger.models.auth.In;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2023-03-25
 */
public interface DhGodsInfoService extends CrudService<DhGodsInfoEntity, DhGodsInfoDTO> {

    /**
     * 物品租赁
     *
     * @param id
     * @param rent
     */
    void rent(Integer id, Long userId, BigDecimal rent);

    /**
     * 物品出售
     *
     * @param id
     * @param sellPrice
     */
    void sell(Integer id, Long userId, BigDecimal sellPrice);

    /**
     * 获取物品名称
     *
     * @param godsId
     * @return
     */
    String getGodsName(Integer godsId);

    /**
     * 通过运动物品名称查找指定物品
     *
     * @param godsName
     * @return
     */
    List<DhGodsInfoDTO> getGodsDataListByGodsName(String godsName);

    /**
     * 获取商品名称、库存数量
     *
     * @return
     */
    List<ChildThreeData> getChildThreeData();

    /**
     * 上架新商品
     *
     * @param id
     * @param godsName
     * @param amount
     * @param rent
     * @param sellPrice
     * @return
     */
    Integer newGods(Integer id, String godsName, Integer amount, BigDecimal rent, BigDecimal sellPrice);

    /**
     * 补充物品库存
     *
     * @param id
     * @param amount
     * @return
     */
    Integer addGods(Integer id, Integer amount);
}